<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>
        报修工单
    </title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="format-detection" content="telephone=no">
    <link rel="stylesheet" href="../../css/main.css" media="all">
    <script type="text/javascript" src="../../lib/loading/okLoading.js"></script>
    <link rel="stylesheet" href="../../css/bootstrap.css">
    <link rel="stylesheet" href="../../lib/layui/css/layui_2.5.7.css">
    <link href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet">
    <style>
        .layui-table-page select {
            height: 22px;
        }
    </style>
</head>

<body>
<div>
    <div class="x-nav">
        <span class="layui-breadcrumb">
            <a><cite>首页</cite></a>
            <a><cite>工单管理</cite></a>
            <a><cite>报修工单</cite></a>
        </span>
        <a class="layui-btn layui-btn-small" style="line-height:1.6em;margin-top:3px;float:right"
           href="javascript:location.replace(location.href);" title="刷新"><i class="layui-icon"
                                                                            style="line-height:30px">ဂ</i></a>
    </div>


    <div class="main_box">
        <div class="panel-heading">
            <h2>报修工单</h2>
        </div>
    </div>

    <form class="layui-form x-center">
        <div class="layui-form-pane" style="margin-top: 15px;">
            <div class="layui-form-item">
                <div class="layui-form-item" id="area-picker">
                    <div class="layui-form-label">省市地区</div>
                    <div class="layui-input-inline" style="width: 200px;">
                        <select name="province" class="province-selector" lay-filter="province-1">
                            <option value="">请选择省</option>
                        </select>
                    </div>
                    <div class="layui-input-inline" style="width: 200px;">
                        <select name="city" class="city-selector" lay-filter="city-1">
                            <option value="">请选择市</option>
                        </select>
                    </div>
                    <div class="layui-input-inline" style="width: 200px;">
                        <select name="county" class="county-selector" lay-filter="county-1">
                            <option value="">请选择区</option>
                        </select>
                    </div>
                </div>
                <input  autocomplete="off"  type="hidden" name="areaString" id="areaString" >
                <label class="layui-form-label">使用单位</label>
                <div class="layui-input-inline">
                    <select name="companyId" id="companyId" lay-filter="brickType">
                        <option value="">请选择</option>
                    </select>

                </div>
                <label class="layui-form-label">项目名称</label>
                <div class="layui-input-inline">
                    <select name="projectId" id="projectId" >
                        <option value="">请选择</option>
                    </select>
                </div>
                <label class="layui-form-label">电梯位置</label>
                <div class="layui-input-inline">
                    <input  autocomplete="off"  type="text" class="layui-input" name="address" id="address" placeholder="电梯位置">
                </div>
                <label class="layui-form-label">工单编号</label>
                <div class="layui-input-inline">
                    <input  autocomplete="off"  type="text" class="layui-input" name="numbercode" id="numbercode" placeholder="工单编号">
                </div>
                <hr>
                <label class="layui-form-label">是否维修</label>
                <div class="layui-input-inline">
                    <select name="isRepair" id="isRepair" lay-search="">
                        <option value="">-请选择-</option>
                        <option value="是">是</option>
                        <option value="否">否</option>
                    </select>
                </div>

                <label class="layui-form-label">报修人</label>
                <div class="layui-input-inline">
                    <input  autocomplete="off"  type="text" class="layui-input" name="repairperson" id="repairperson" placeholder="报修人">
                </div>

                <label class="layui-form-label">报修电话</label>
                <div class="layui-input-inline">
                    <input  autocomplete="off"  type="text" class="layui-input" name="tel" id="tel" placeholder="报修电话">
                </div>
                <label class="layui-form-label">维修人员</label>
                <div class="layui-input-inline">
                    <select name="repairpersonId" id="repairpersonId" lay-search="">
                        <option value="">-请选择-</option>

                    </select>
                </div>
                <hr>
                <label class="layui-form-label">添加时间</label>
                <div class="layui-input-inline">
                    <input  autocomplete="off"  class="layui-input" placeholder="开始日" name="starttime" id="starttime">
                </div>
                <div class="layui-input-inline">
                    <input  autocomplete="off"  class="layui-input" placeholder="截止日" name="endtime" id="endtime">
                </div>
                <div class="layui-input-inline layui-show-xs-block">
                    <button class="layui-btn" type="button" lay-filter="sreach" data-type="reload"
                            onclick="reload()">
                        <i class="layui-icon">&#xe615;</i></button>
                </div>

            </div>
        </div>
    </form>


    <div class="layui-card-body">
        <button style="float: right;" class="layui-btn" onclick="admin_add('添加报修工单','report_add.html','','700')"><i class="layui-icon"></i>添加
        </button>
        <table class="layui-table" id="test" lay-filter="test">
        </table>
    </div>
    <br><br><br><br><br><br>
</div>
</body>

<script type="text/html" id="barDemo">
    <a class="layui-btn layui-btn-xs" lay-event="view">详情</a>
    <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">取消工单</a>
    <!--<a class="layui-btn layui-btn-xs" style="background: #f1a325" lay-event="zp">工单指派</a>
    <a class="layui-btn layui-btn-xs" style="background: #673ab7" lay-event="qx">取消工单</a>
    -->
</script>


<script type="text/javascript" src="../../js/jquery.min.js"></script>
<script type="text/javascript" src="../../js/myAjax.js"></script>
<script type="text/javascript" src="../../js/pub.js"></script>
<script type="text/javascript" src="../../lib/layui/layui2.5.7.js"></script>
<script type="text/javascript" src="../../js/vue.min.js"></script>
<!-- <script src="lib/layui/layui.js" charset="utf-8"></script> -->
<script src="../../js/x-layui.js" charset="utf-8"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/3.3.5/js/bootstrap.min.js"></script>
<script>
    //配置插件目录
    layui.config({
        base: '../../js/'
        , version: '1.0'
    });
</script>
<script>
    layui.use(['laydate', 'element', 'laypage', 'layer', 'form'], function () {
        $ = layui.jquery;//jquery
        laydate = layui.laydate;//日期插件
        lement = layui.element;//面包导航
        laypage = layui.laypage;//分页
        layer = layui.layer;//弹出层
        var form = layui.form;
        okLoading.close($);
    });
</script>


<script>

    layui.use(['laydate', 'form','layarea'],
        function () {
            var laydate = layui.laydate;
            var layarea = layui.layarea;

            //执行一个laydate实例
            laydate.render({
                trigger: 'click',
                type: 'date',
                elem: '#starttime' //指定元素
            });

            //执行一个laydate实例
            laydate.render({
                trigger: 'click',
                type: 'date',
                elem: '#endtime' //指定元素
            });
            layarea.render({
                elem: '#area-picker',
                change: function (res) {
                    //选择结果
                    console.log(res);
                    if(res.province!=""){
                        $("#areaString").val(res.province + "," + res.city + "," + res.county);
                    }else{
                        $("#areaString").val("");
                    }

                }
            });

            var form=layui.form;


            let request2 = {
                url: 'maintenance/company/findAll',
                data: {
                    userId: $userId,
                },
                method: "GET",
            };
            sendRequest(request2, (res) => {
                let x = res.data;
                $.each(x, function (index, item) {
                    let opt = $("<option value=" + item.id + ">" + item.name + "</option>");
                    $("#companyId").append(opt);
                });
                form.render('select');
            });

            let request3 = {
                url: 'maintenance/project/findAll',
                data: {
                    userId: $userId,
                },
                method: "GET",
            };
            sendRequest(request3, (res) => {
                let x = res.data;
                $.each(x, function (index, item) {
                    let opt = $("<option value=" + item.id + ">" + item.name + "</option>");
                    $("#projectId").append(opt);
                });
                form.render('select');
            });
            let request6 = {
                url: 'user/getMaintenanceUser',
                data: {
                    userId: $userId,
                },
                method: "GET",
            };
            sendRequest(request6, (res) => {
                let x = res;
                $.each(x, function (index, item) {
                    let opt = $("<option value=" + item.id + ">" + item.nickname + "</option>");
                    $("#repairpersonId").append(opt);
                });
                form.render('select');
            });
            form.render('select');


            form.on('select(brickType)', function(data){

                let opthtml = $("<option value=''>请选择</option>");
                $("#projectId").html(opthtml);
                form.render('select');
                var val=data.value;
                if(val!=""){
                    let request = {
                        url: 'maintenance/project/findByCompanyId',
                        data: {
                            companyId: val,
                            userId: $userId
                        },
                        method: "POST",
                    };
                    sendRequest(request, (res) => {
                        let x = res.data;
                        $.each(x, function (index, item) {
                            let opt = $("<option value=" + item.id + ">" + item.name + "</option>");
                            $("#projectId").append(opt);
                        });
                        form.render('select');
                    });
                }

            });
        });


    layui.use('table', function () {
        table = layui.table;
        //方法级渲染
        var t1 = table.render({
            elem: '#test',
            url: $baseUrl + 'maintenance/reportRepair/list',
            headers: {
                token: $token
            },where: {
                userId: $userId,
            }
            , toolbar: '#toolbarDemo',

            // toolbar: true,
            cols: [
                [
                    {
                        field: 'numbercode',
                        title: '工单编号',
                        fixed: 'left',
                        width: '160',
                        templet(item) {
                            return item.reportRepair.numbercode== undefined ? "" : item.reportRepair.numbercode;
                        }
                    },

                    {
                        field: 'companyname',
                        title: '使用单位',
                        width: '180',
                        templet(item) {
                            return item.elevator.company.name == undefined ? "" : item.elevator.company.name;
                        }
                    },
                    {
                        field: 'projectname',
                        title: '项目名称',
                        width: '130',
                        templet(item) {
                            return item.elevator.project.name== undefined ? "" : item.elevator.project.name;
                        }

                    },
                    {
                        field: 'areaString',
                        title: '省市地区',
                        width: '180',
                        templet(item) {
                            return item.elevator.project.areaString== undefined ? "" : item.elevator.project.areaString;
                        }
                    },
                    {
                        field: 'address',
                        title: '电梯位置',
                        width: '260',
                        templet(item) {
                            return item.elevator.address== undefined ? "" : item.elevator.address;
                        }

                    },
                    {
                        field: 'status',
                        title: '是否维修',
                        width: '100',
                        templet(item) {
                            return item.reportRepair.isRepair== undefined ? "" : item.reportRepair.isRepair;
                        }


                    },
                    {
                        field: 'repairpersontel',
                        title: '报修人/电话',
                        width: '200',
                        templet(item) {
                            var person =item.reportRepair.repairperson== undefined ? "" : item.reportRepair.repairperson;
                            var tel =item.reportRepair.tel== undefined ? "" : item.reportRepair.tel;
                            return person+"/"+tel;
                        }

                    },

                    {
                        field: 'maintenancePerson',
                        title: '维修人',
                        width: '100',
                        templet(item) {
                            var person="";
                            $.each(item.maintenancePerson, function (index, itemcompany) {

                                var name = itemcompany+" ";
                                person +=name;
                            });
                            return person;
                        }
                    }
                    ,


                    {
                        field: 'status',
                        title: '操作',
                        templet: '#barDemo',
                        fixed: 'right',
                        width: '180'
                    }]
            ],
            request: {
                pageName: 'pageNum', //页码的参数名称，默认：page
                limitName: 'pageSize',
            },
            response: {
                statusName: 'code' //规定数据状态的字段名称，默认：code
                ,
                statusCode: 0 //规定成功的状态码，默认：0
                ,
                msgName: 'msg' //规定状态信息的字段名称，默认：msg
                ,
                countName: 'total' //规定数据总数的字段名称，默认：count
                ,
                dataName: 'data', //规定数据列表的字段名称，默认：data
            },
            id: 'test',
            page: true,
            height: 'auto',
            even: true,
            done: function (res, curr, count) {
                //是否有权限或权限是否失效
                // authorizeState();
            }
        });

        //监听工具条
        table.on('tool(test)', function (obj) { //注：tool 是工具条事件名，test 是 table 原始容器的属性 lay-filter="对应的值"
            let data = obj.data; //获得当前行数据
            let layEvent = obj.event; //获得 lay-event 对应的值（也可以是表头的 event 参数对应的值）
            if (layEvent === 'del') { //删除
                layer.confirm('是否确认取消工单 ？', {
                    icon: 3,
                    title: '提示'
                }, function (index) {

                    if(data.reportRepair.isRepair=="是"){
                        layer.msg("已经维修，不能取消", {
                            icon: 5
                        });
                    }else {
                        let request = {
                            url: "maintenance/reportRepair/del/" + data.reportRepair.id,
                            data: {
                                userId: $userId,
                            },
                            method: "DELETE",
                        };
                        sendRequest(request, (data) => {
                            if (data.code === 0) {
                                layer.msg("取消成功", {
                                    icon: 1
                                });
                                t1.reload();
                            } else {
                                layer.msg("取消失败，请稍后再试！", {
                                    icon: 5
                                });
                            }
                        });
                        layer.close(index);
                    }

                });
            } else if (layEvent === 'view') { //详情
                admin_add('工单详情', 'report_details.html?recordId=' + data.reportRepair.id,'1400','800')


            } /*else if (layEvent === 'zp') { //指派工单
                if(data.reportRepair.status=="未指派"){
                    admin_add('指派工单', 'repair_zhipai.html?recordId=' + data.reportRepair.id)
                }else{
                    var msg = "该工单"+data.reportRepair.status+"，不能指派！"
                    layer.msg(msg, {
                        icon: 5
                    });
                }

            }else if (layEvent === 'qx') { //取消
                layer.confirm('是否取消工单？', {
                    icon: 3,
                    title: '提示'
                }, function (index) {
                    if(data.reportRepair.status=="未指派" || data.reportRepair.status=="已派单"){
                        layer.prompt({
                            formType: 2,
                            value: '',
                            title: '请输入值',
                            area: ['200px', '50px'] //自定义文本域宽高
                        }, function(value, index, elem){
                            let request = {
                                url: "maintenance/reportRepair/cancel",
                                data: {
                                    userId: $userId,
                                    id: data.reportRepair.id,
                                    remark: value,
                                    person: $nickName,
                                },
                                method: "POST",
                            };
                            sendRequest(request, (data) => {
                                if (data.code === 0) {
                                    layer.msg("取消成功", {
                                        icon: 1
                                    });
                                    t1.reload();
                                } else {
                                    layer.msg("取消失败，请稍后再试！", {
                                        icon: 5
                                    });
                                }
                            });
                            layer.close(index);
                        });
                    }else{
                        var msg = "该工单"+data.reportRepair.status+"，不能取消！"
                        layer.msg(msg, {
                            icon: 5
                        });

                    }
                    layer.close(index);
                });
            }*/
        });

    });

    function reload(value) {
        table.reload('test', {
            where: {
                areaString: $("#areaString").val(),
                companyId: $("#companyId").val(),
                projectId: $("#projectId").val(),
                address: $("#address").val(),
                numbercode: $("#numbercode").val(),
                isRepair: $("#isRepair").val(),
                repairperson: $("#repairperson").val(),
                tel: $("#tel").val(),
                starttime: $("#starttime").val(),
                endtime: $("#endtime").val(),
                repairpersonId: $("#repairpersonId").val(),
            }
        });
    }

    function admin_add(title, url, w, h) {
        x_admin_show(title, url, w, h);
    }
</script>

<script>
    new Vue({
        created() {

        }
    });

</script>


</html>
